5283. Оттепель

 

Уставшие от необычно тёплой зимы жители Фростхольма решили выяснить, действительно ли текущая оттепель является самой продолжительной за всю историю метеорологических наблюдений. Они обратились к синоптикам, которые, в свою очередь, приступили к анализу статистических данных за предыдущие годы. Их интересует, сколько дней длилась самая продолжительная оттепель.

Оттепелью считается период, в течение которого среднесуточная температура каждый день превышала 0 градусов Цельсия. Напишите программу, которая поможет синоптикам решить эту задачу.

 

Вход. Первая строка содержит количество рассматриваемых дней n (1 ≤ n ≤ 1000).

Вторая строка содержит n целых чисел – среднесуточные температуры в соответствующие дни. Температуры являются целыми числами и лежат в диапазоне от -50 до 50.

 

Выход. Выведите одно число – длину самой продолжительной оттепели, то есть максимальное количество подряд идущих дней, в течение которых среднесуточная температура превышала 0 градусов. Если во все дни температура была неположительной, выведите 0.

 

Пример входа

Пример выхода

6

-20 30 0 50 10 -10

2

 

 

РЕШЕНИЕ

массивы

 

Анализ алгоритма

В переменной res вычисляем длину самой продолжительной оттепели.

В переменной temp вычисляем длину текущей оттепели – то есть количество подряд идущих дней с положительной температурой.

Для каждого дня анализируется значение температуры:

·        если температура положительная, значение temp увеличивается на 1;

·        в противном случае temp сбрасывается в 0.

В процессе обработки всех дней поддерживается максимум среди значений temp, который сохраняется в переменной res.

 

Пример

Рассмотрим пример.

 

Реализация алгоритма

Читаем количество дней n.

 

scanf("%d", &n);

 

В переменной res вычисляем длину самой продолжительной оттепели.

В переменной temp вычисляем длину текущей оттепели (количество подряд идущих дней с положительной температурой).

 

temp = res = 0;

 

Обрабатываем температуры за все n дней.

 

for (i = 0; i < n; i++)

{

  scanf("%d", &cur);

 

Если cur > 0, увеличиваем длину текущей оттепели на 1. Иначе сбрасываем ее значение в 0.

 

  if (cur > 0) temp++; else temp = 0;

 

Среди всех полученных значений длины текущей оттепели поддерживаем максимальное значение.

 

  if (temp > res) res = temp;

}

 

Выводим ответ.

 

printf("%d\n", res);